Omdat deze FROM (SELECT @foo AS foo) wordt hiervoor geëvalueerd @foo := 1 . In principe wordt alles in FROM geëvalueerd vóór uw SELECT.
Het zou eigenlijk null moeten zijn, maar ik vermoed dat je je sessievariabele ergens anders een waarde van nul hebt toegewezen.