Per abitudine uso un client grafico per dare i permessi quindi di primo acchito sono rimasto perplesso, visto che la sintassi pare corretta.

Facendomi mostrare le query di grant replicando il tuo caso, ho notato che la sintassi che usa MySQL sembra essere GRANT USAGE anziche' GRANT SELECT.

E' possibile che GRANT SELECT sia una di quelle tante keyword che (incredibilmente) essendo SQL standard MySQL parsa correttamente ma non esegue.

Prova con GRANT USAGE e sappimi dire..