public function getMenuDataAjax(){
$jinput = JFactory::getApplication()->input;
$id = $jinput->get("id", "-1", "INT");
$response = $this->getModel()->getPhotoAndMenu($id);
echo json_encode($response);
JExit;
}
la disposition è inline, e non serve la specifica del tipo di content. se l'oggetto json è vuoto allora non hai risultati, ma qualcosa devi restituire e chiudere la connessione, altrimenti con return false restituisci la pagina (come hai già appurato "&format=json" non ci va!).
dopo aver restituito la stringa json interrompi l'elaborazione, altrimenti restituirai anche tutto l'html.
ciao,
marco