Sua fila poderia ser mais concisa. Em vez de depender da reversão da transação, você pode fazer isso em uma instrução atômica sem uma transação explícita:
UPDATE jobs SET process_id = ? WHERE process_id IS NULL ORDER BY ID ASC LIMIT 1;
Então você pode puxar trabalhos com (colchetes [] significam opcionais, dependendo de seus dados):
SELECT * FROM jobs WHERE process_id = ? [ORDER BY ID LIMIT 1];