Oui. Comme vous l'avez découvert, la valeur id n'a pas encore été générée dans un déclencheur BEFORE INSERT. Mais vous ne pouvez pas modifier votre valeur NEW.thread dans un déclencheur AFTER INSERT.
Vous ne pouvez pas compter sur la lecture du INFORMATION_SCHEMA, car vous pouvez provoquer une condition de concurrence.
Vous n'aurez qu'à faire l'INSERT, puis exécuter immédiatement :
UPDATE comments SET thread=id WHERE id=LAST_INSERT_ID() AND thread IS NULL;
S'il s'agit d'un commentaire racine.
Voir aussi mes réponses passées sur le sujet similaire :
- Concaténation d'une chaîne et d'un identifiant de clé primaire lors de l'insertion
- Deux colonnes d'auto-incrémentation ou auto-incrémentation et même valeur dans une autre colonne