AJAX не работает таким образом. Вы не можете вернуть значение из успешного обратного вызова - обратный вызов - это просто то, что выполняется для данных после успешного выполнения запроса AJAX.
Если вы должны использовать AJAX для этого, вам нужно сделать его синхронным:
$.validator.addMethod("checkMail", function(value, element) {
var email_id = value;
var valid = false;
$.ajax({
async: false, // make it synchronous
type: "POST",
url: "ajax_validation.php",
data: {'category_email_mode' : 'add_email', 'email' : email_id},
dataType: "text",
success: function(msg){
valid = (msg=='true');
}
});
return valid;
}
},"Email id is already choosen");
При этом вам, вероятно, лучше использовать встроенный PHP вместо вызова AJAX для проверки.