Eu acho que isso pode ser o que você literalmente quer aqui:
SELECT DISTINCT
status_id,
(SELECT MAX(user_id) FROM comments c2 WHERE c1.status_id = c2.status_id) user_1,
(SELECT user_id FROM comments c2 WHERE c1.status_id = c2.status_id
ORDER BY user_id LIMIT 1 OFFSET 1) user_2
FROM comments c1
WHERE user_id IN (2,3);
Demonstração
(seu violino de atualização)Podemos usar subconsultas correlacionadas para encontrar o máximo
user_id
e user_id
do segundo ao máximo para cada status_id
e, em seguida, gire cada uma delas como duas colunas separadas. Usando um GROUP_CONCAT
A abordagem pode ser preferível aqui, pois também permitiria acomodar facilmente qualquer número de usuários como uma lista CSV. Além disso, se você estivesse usando o MySQL 8+ ou superior, poderíamos aproveitar as funções analíticas de classificação, o que também seria mais fácil.