Ele não permitirá que você atualize a tabela porque ela já está sendo lida pelo
INSERT INTO.. SELECT
consulta que invoca esse gatilho. Uma forma alternativa seria desabilitar o gatilho e atualizar a tabela de usuários separadamente, por exemplo:
INSERT INTO signed (time_of_start, player)
SELECT time_of_game_id, users.user_id FROM time_of_game, users
WHERE time_of_game.time_of_start="2017-02-01 12:00:00"
AND users.steamid="1234567890123456";
UPDATE users join time_of_game SET users.credit = users.credit-1
where time_of_game.time_of_start="2017-02-01 12:00:00"
AND users.steamid="1234567890123456";
Você pode adicionar uma coluna de junção com
ON
cláusula se houver alguma coluna que vincule essas duas tabelas.