Если все процессы на одном сервере - лучше использовать flock, он проще и надёжнее.
Например, в случае рестарта mysql или потери соединения с ним по другой причине - вы теряете блокировку, полученную GET_LOCK, но можете про это и не узнать.
Если же вам нужно получать блокировки на разных серверах, то GET_LOCK может выручить. Но внимательно ознакомьтесь с подводными камнями. Например, в старых версиях mysql повторный вызов GET_LOCK отменяет предыдущие блокировки, а в новых - получает новые блокировки параллельно.
P.S. если вам блокировка нужна для выполнения простых действий в таблице, типа выборки нового задания для обработки, используйте SELECT FOR UPDATE.