Как я понимаю group_by, вам нужно выбрать сгруппированные поля для запроса, чтобы иметь смысл. Чего вы пытаетесь достичь?
Представьте себе эту таблицу:
download_link, id
-----------------
'' , 3
'foo' , 3
Это, используя ваш запрос, выберет
3
3
и поэтому объясните вашу проблему с блокировкой, поскольку строка 1 уже заблокирована транзакцией, но должна быть заменена на строку 2.