MYSQL select all columns except one

Today a thought occurred to me of how to select all columns except one. I searched and found the answer in stackoverflow. I tried the below answer

SET @SQL = CONCAT('SELECT ', (SELECT GROUP_CONCAT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'users' AND COLUMN_NAME NOT IN ('id')), ' FROM users'); 
PREPARE stmt1 FROM @SQL; 
EXECUTE stmt1;

This gives error when column names contains spaces or – or MySQL keywords.I modified the code a bit and generalized it by adding backticks to the column names. Below is the modified code.

SET @SQL = CONCAT('SELECT ', (SELECT GROUP_CONCAT(CONCAT("`", COLUMN_NAME, "`")) FROM
INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'users' AND COLUMN_NAME NOT IN ('id')), ' FROM users');
PREPARE stmt1 FROM @SQL;
EXECUTE stmt1;