¿Por qué pones en la cabecera del formulario la línea 
onsubmit="return validar();" si ninguna de tus funciones devuelve un valor? 
Hacerlo sin Ajax significa que simplemente no uses el método 
$.ajax ni la manera nativa de hacerlo. Solo usarías el formulario, tu función de validación y devolverías 
true o 
false si la validación fue exitosa o no. 
La verdad, no entiendo por qué te complicas con algo tan sencillo. Un ejemplo simple con Ajax de algo similar a lo que pretendes hacer sería el siguiente:    
Código HTML:
Ver original- <form id = "login" method = "post" action = "procesar.php"> 
-     <input type = "text" name = "usuario" id = "usuario" required /> 
-   
-     <input type = "password" name = "clave" id = "clave" required /> 
-   
-     <input type = "submit" /> 
Código Javascript
:
Ver original- $("#login").on("submit", function(event){ 
-     event.preventDefault(); 
-   
-     $.ajax({ 
-         url: $(this).prop("action"), 
-         type: $(this).prop("method"), 
-         data: $(this).serialize() 
-     }).done(function(respuesta){ 
-         if (respuesta == "OK"){ 
-             $(location).prop("href", "principal.php"); 
-         } 
-         else{ 
-             alert("Los datos ingresados no son correctos"); 
-         } 
-     }); 
- }); 
Código PHP:
Ver original-   
-   
- if (!$conexion) exit('No se pudo conectar'); 
-   
- $consulta = "SELECT * FROM usuarios WHERE usuario = '$usuario' AND clave = '$clave'"; 
- $resultados = mysqli_query($conexion, $consulta)-  or  exit('No se pudo realizar la consulta');
 
-   
-     $_SESSION['identificado'] = true; 
-     $_SESSION['usuario'] = $usuario; 
-     echo 'OK'; 
- } 
- else{ 
-     $_SESSION['identificado'] = false; 
-     echo 'ERROR'; 
- } 
-   
Y en principal.php:   
Código PHP:
Ver original-   
- if ($_SESSION['identificado']){ 
-     //Muestras el contenido 
- } 
Toma este sencillo ejemplo como una guía para que hagas lo que necesitas. 
Saludos