Experimenta consultar o json_encode() antes do while( $result = mysqli_fetch_array() ), então.
Eu estou achando que o problema está surgindo por você consultar depois.
Provavelmente nessa hora não tem mais nada lá pra ser consultado, por isso retorna null.