OP a presque réussi. GROUP_CONCAT
devrait envelopper les colonnes dans la sous-requête et non la sous-requête complète
(Je supprime le séparateur car la virgule est la valeur par défaut) :
SELECT i.*,
(SELECT GROUP_CONCAT(userid) FROM favourites f WHERE f.itemid = i.id) AS idlist
FROM items i
WHERE i.id = $someid
Cela donnera le résultat souhaité et signifie également que la réponse acceptée est partiellement fausse, car vous pouvez accéder à des variables de portée externe dans une sous-requête.