Yes, I can explain. There shouldn't be any ticks around the name of the column in the where clause. You only need ticks around strings. Leave them out. PHP is passing the "plain" ticks directly to the SQL backend which doesn't like them and so it crashes it. With the back-ticks, I believe that PHP tries to evaluate the epxression and then substitute it, and miraculously the expression "group" (without quotes) evaluates to itself and then SQL processes it. So, just leave the quotes out entirely.
The single quote used in all general expressions ( ' ) is used for string evaluations. It ( value given in the sting ) won't changed during execution of the script/program. It will remain unchanged.
On the other case, ( ` ) is used for execution of command. It will evaluates the expression and processes the result. It is used for execution of any statement. Hence in your case ( first select statement ) it will execute and returns first row of the given database. In second select statement it works just as assigned variable and won't change during execution.