MySQL вижда, че подзаявката връща само едно поле/ред и следователно го третира като нещо като:
... and A.id IN ('1,2,3,4')
което се свежда до A.id = '1,2,3,4'
.
За заявка „in“ няма нужда от group_concat неща, просто направете:
... and A.id IN (select B.id FROM b where user = 3)