Vous faites un GROUP BY
partiel qui ne fonctionne pas comme prévu. Voici une requête qui produit les résultats souhaités :
SELECT MAX(id) AS MAXID, user_id
FROM `table`
GROUP BY user_id
ORDER BY MAXID DESC
LIMIT 4
Le comportement est expliqué ici :