MySQL sieht, dass die Unterabfrage nur ein einzelnes Feld/eine einzelne Zeile zurückgibt, und behandelt sie daher wie folgt:
... and A.id IN ('1,2,3,4')
was auf A.id = '1,2,3,4'
hinausläuft .
Für eine 'in'-Abfrage ist das group_concat-Zeug nicht erforderlich, tun Sie einfach:
... and A.id IN (select B.id FROM b where user = 3)