Lo más cercano que podría hacer es usar INFORMATION_SCHEMA.COLUMNS para encontrar el nombre de la columna desde la posición ordinal. Me doy cuenta de que esto no es lo que pediste, pero creo que puede ser lo más cerca que puedas estar. Por ejemplo, podría crear una declaración de selección que tenga las columnas 1, 2 y 5 de la siguiente manera:
SELECT CONCAT("SELECT ",
GROUP_CONCAT(column_name SEPARATOR ", "),
" FROM ", table_name)
FROM information_schema.columns
WHERE table_schema = database()
AND table_name = 'my_table'
AND ordinal_position IN (1,2,5)
GROUP BY table_name
ORDER BY ordinal_position;