Можно попробовать использовать NOT IN:
РЕДАКТИРОВАТЬ для MySQL :
DELETE FROM chat WHERE id NOT IN (
SELECT id
FROM (
SELECT id
FROM chat
ORDER BY id DESC
LIMIT 50
) x
);
Это для SQL-Server :
DELETE FROM chat WHERE id NOT IN
(SELECT TOP 50 id FROM chat ORDER BY id DESC)
Предполагая, что более высокие значения id
всегда новее.