Neexistuje žádný způsob, jak to udělat pěkně pomocí fulltextového vyhledávání MySQL. To, co děláte (nahrazování speciálních znaků předdefinovaným řetězcem), je jediný způsob, jak to udělat.
Možná budete chtít zvážit použití Sphinx Search namísto. Zjevně podporuje escapování speciálních znaků a podle všech zpráv je výrazně rychlejší než výchozí fulltextové vyhledávání.