No dije que no se pueda, sino que no pendes crear una consulta que sólo contenga un IF estructurado, porque esos sólo funcionan en scripts o en stored procedures.
Son cosas distintas.
Una variable de sesión (las que inician con un "@") se puede usar y asignar en un SELECT sin problema, aunque de otra forma, pero no puedes ejecutar un IF..THEN...ELSE...END IF, como si fuese una consulta, porque
no lo es.
¿Por qué no implementas eso en un SP?
Un ejemplo de uso de variables de usuario en una consulta:
Cómo numerar secuencialmente una consulta, sin usar PK