This is to my best understanding not a bug!
The concat() functions takes strings as arguments! Unless they are string columns or declared variables inside a stored program (stored procedure, function, trigger etc), a and b will not be recognized as strings by the server.
The error message is sent from the server and would be the same with any client.
Why don't you write concat('a','b')? What point am I missing?