Basta usare le espressioni nella seconda query per il GROUP BY della prima query:
SELECT * FROM chat_messages GROUP BY LEAST(to_id,from_id), GREATEST(to_id,from_id)
Basta usare le espressioni nella seconda query per il GROUP BY della prima query:
SELECT * FROM chat_messages GROUP BY LEAST(to_id,from_id), GREATEST(to_id,from_id)