L'utente @Joni mi ha portato alla soluzione.
Aggiunta di mysql_set_charset("utf8")
risolto il mio problema.
Come accennato in questo post:Perché questa chiamata PHP a json_encode fallisce silenziosamente - incapacità di gestire virgolette singole? .