Я не уверен, откуда взялась user_id
в вашем триггере, выглядит как посторонняя проверка, попробуйте это:
CREATE TRIGGER updateTrigger AFTER UPDATE ON users
FOR EACH ROW
BEGIN
UPDATE users SET is_active=0 WHERE NEW.is_code=1
AND NEW.times_logged_in>=3
END;
Кроме того, убедитесь, что is_code = 1
на самом деле совпадает с пользователями, которых вы обновляете, в противном случае он не будет обновлять строки.