Without changing the current Ext JS code your only option is to set applyLoader:false in the root loader and specify loaders in the child node attributes.

ps. Shouldn't the correct fix be:
Code:
Ext.override(Ext.tree.TreeLoader, {
	createNode : function(attr){
		if(this.baseAttrs){
			Ext.applyIf(attr, this.baseAttrs);
		}
		if(this.applyLoader !== false && !attr.loader){
			attr.loader = this;
		}
		if(typeof attr.uiProvider == 'string'){
		   attr.uiProvider = this.uiProviders[attr.uiProvider] || eval(attr.uiProvider);
		}
		if(attr.nodeType){
			return new Ext.tree.TreePanel.nodeTypes[attr.nodeType](attr);
		}else{
			return attr.leaf ?
						new Ext.tree.TreeNode(attr) :
						new Ext.tree.AsyncTreeNode(attr);
		}
	}
});