Почему на одном сервере json_decode нормально отрабатывает, на другом возвращает null?
NULL is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit.
Мы, конечно, можем поиграть в угадайку, но зачем, если есть json_last_error()? А в современных версиях языка есть даже json_last_error_msg().
json в файл перенеси, потом json_decode(file_get_contents('data.json'), true);