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.