У вас какой-то зоопарк, а не код. Видимо понадёргали из разных мест. Нижняя обработка отправки формы (которая на jQ написана), перекрывает верхнюю, поэтому письмо отправляется всегда.
Объедините всё в одну функцию:
$( "form" ).submit( function() {
if ( !this.checkValidity() )
alert( "Пожалуйста, заполните обязательные поля." );
else {
$.ajax( {
type: "POST",
url: "/form/mail.php",
data: $( this ).serialize()
} ).done( function() {
alert( "Заявка принята! В ближайшее время наш менеджер с Вами свяжется." );
} );
} );