Lo que entiendo es que deseas que la respuesta a la consulta sea extremadamente rápida? y para eso deseas obviar los JOINS?
En principio creo que es imprescindible tener 3 tablas producto, categoria y producto_categoria.
Y para acelerara mas el preoceso de consulta, se me ocurre 2 alternativas
1. Que trabajes con tablas
MEMORY, los cuales son tablas temporales y son muy rápidas.
2. trabajes con una
vista y usando como algoritmo MERGE, de esta manera la vista empleara una tabla temporal y obtendrás rapidez
Saludos!