nella prima subselect la condizione di where

codice:
WHERE                              
sotto_categorie_varianti.id_prodotto=prodotti.id_prodotto
dovrebbe essere sbagliata poichè dovrebbe essere tra la tabella prodotti e la tabella immagini_prodotti. Prova ad eseguire la query con phpmyadmin direttamente nel db per vedere che cosa succede