Du kan bruge en forespørgsel som denne:
select
min(id) as id,
least(sender,recipient) as sender,
greatest(sender,recipient) as recipient
min(text) as text
from
tablename
group by
least(sender,recipient),
greatest(sender,recipient)
(eller du kan bruge en anden aggregeret funktion til teksten, f.eks. group_concat, eller du skal deltage i tabelnavn to gange for at få den første eller sidste besked fra chatten, men dette afhænger af, hvad du vil returnere)