Ahí esta el problema, ahora mismo no me acuerdo como se llama, pero si lo buscas en los ejemplos de la documentación lo vas a encontrar, datatables (al igual que la gran mayoria de los componentes que usan ajax) emplean un mecanismo de identificación de peticiones, es decir, caza vez que envian una peticion de datos al servidor, le envian un identificador, que generalmente es un numero, que esperan que el servidor se los "revote" o se los devuelva junto con la respuesta, lo que no recuerdo es como se llama en datatables, en su ultima version actual creo que el parametro de llama "
draw" y creo tambien que en las anteriores era "
sEcho" pero hace mucho que deje usar ese plugin y no me acuerdo el nombre, te toca googlearlo.
Si no revotas ese valor, datatables nunca mostrara los resultados.
En este ejemplo puedes encontrar mas información de como tienes que armar la respuesta.