mm .. Para la estructura de arbol que buscas .. el modelo de datos que emplearía sería este que propone esta FAQ:
http://www.forosdelweb.com/showpost....&postcount=147
Si te fijas .. se crea una sóla tabla (tu actual products_category).. la cual contiene un campo que denomina "padre" .. es decir, de que registro depende ese mismo registro. El arbol se genera de forma dinámica aplicando recursividad. Los niveles ("ramas") de este tipo de arboles son infinitas, es muy cómodo mover por ejemplo una rama completa a otra .. etc.
Un saludo,