SELECT id, message, max(date), sent, received FROM table WHERE sent=1
UNION
SELECT id, message, max(date), sent, received FROM table WHERE received=1
должен дать вам правильный вывод (не проверено).
Этот ответ основан на описании заявки, поскольку данные примера не дают действительного результата для данных образца