echo json_encode([1]);
array(1) { [0]=> int(1) }
array(1) { [0]=> int(1) }
var_dump([1])
, или var_dump(json_decode(json_encode([1]),true))
смотрите откуда у вас берется такой результат. Скорее всего вы уже после получения сделали var_dump от json_decode данных. cURL получает те данные, что скрипт бы вывел в браузер, поэтому без echo или print не обойтись. return не из этой истории вовсе. В скрипте отдающем данные не помешало бы еще отдать заголовок, 'Content-Type: application/json'
так грамотнее)