Il this non puoi usarlo in quel modo.

Il setTimeout() prende la stringa contenuta nel primo parametro e la elabora dopo un tempo definito.
Quindi al momento dell'elaborazione della stringa il this non ha significato.
Puoi usare invece (nel tuo caso):
window.setTimeout ('document.getElementById(\"'+this.id+'\").disable d=\"true\"', 1);

Nota le backslash davanti alle virgolette interne per non farle interpretare dal parser HTML assieme a quelle che racchiudono l'argomento dell'evento.