Node.js callback closure/scope
Interesting question,

I would go with this:

create: function (registerDetails, found, notfound) {

    db.User.findOne({
        username: registerDetails.username
    }).exec(queryCallback);

    function queryCallback(err, user) {
        if (user != null) {
            found(user);
        } else {
            var newUser = new db.User();
            newUser.username = registerDetails.username;
            newUser.password = registerDetails.password;
            newUser.save(saveCallback);
        }
    };

    function saveCallback(err, user) {
        notfound(user);
    };
},


Basically, I 


Used the fact that JavaScript does hoisting, you can use functions prior to having them declared. Given this I put the .exec() on top, I also did away with query which I would have called userQuery.
I put proper braces and newlines around if( user!= null ), to be tested, but if you can get away with it, you should consider if(user)
I moved from var xx = function() to function xx() because anonymous functions in stacktraces are not fun