Coś takiego powinno działać:
DELETE FROM `table`
WHERE `id` NOT IN (
SELECT MIN(`id`)
FROM `table`
GROUP BY `download_link`)
Aby być po bezpiecznej stronie, przed uruchomieniem rzeczywistego zapytania usuwającego możesz chcieć wykonać równoważne zaznaczenie, aby zobaczyć, co zostanie usunięte:
SELECT * FROM `table`
WHERE `id` NOT IN (
SELECT MIN(`id`)
FROM `table`
GROUP BY `download_link`)