stai usando ritengo mysql vecchia versione è non mariadb
in questo caso la subquery non viene materializzata e quindi ripetuta come un nested loop
usa join
oppure due query se i risultati son pochi con group_concat