ma il parse error te lo da chi? Javascript o php?

jsonp si aspetta come risposta non un json semplice, ma una funzione che abbia come parametro il tuo json.

In pratica, per fare un esempio spiccio:

nel tuo codice javascript avrai la funzione elaboraDati

codice:
function elaboraDati(datiJson) {
}
e nel tuo php anzichè ritornare il tuo oggetto json_encodato, supponiamo:

codice:
[{id:1, label:"lampadina"},{id:2, label:"lampadario"}]
dovrai stampare la stringa:

codice:
elaboraDati([{id:1, label:"lampadina"},{id:2, label:"lampadario"}]);
In pratica js interpreta la stringa come la chiamata alla funzione elaboraDati a cui passi dinamicamente da php il tuo oggetto json.

vedi se ti può essere utile:

http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

Ciao