eso es porque en ningún momento le dijiste a jQuery que la respuesta viene en formato json, debes asignarlo con
dataType: 'json'
por defecto jQuery lo reconoce, pero si la respuesta tiene el encabezado adecuado, en tu caso con agregar un
header('Content-type: application/json'); o text/json, pero es más seguro especificarlo desde jQuery