HTB Academy - SQL Injection Fundamentals

Let me preface this by saying I’m completely new to SQL injections. I got past my issue but I’m confused as to why I had the issue. On page 12 “union injection”

The given example uses version(): cn’ UNION select 1,@@version,3,4–

The question is: Use a Union injection to get the result of ‘user()’
so I tried: cn’ UNION select 1,@@user,3,4–
I got the error: “Unknown system variable ‘user’”

I ended up trying this with a few other functions, current_user(), schema(), etc. and nothing worked except version().

However if I do: cn’ UNION select 1,user(),3,4–
it works just fine, along with current_user(), schema(), etc. why is it that only version() works as shown in the example?