You should use cURL or Firebug to check, but I think you are double-JSON-encoding your HTML.
It's also not clear why you write:
echo $_GET['callback'] ?>({"html": "<?php echo $output; ?>" });
instead of
echo $_GET['callback'] ?>({"html": $output });
EDIT: Never mind, I have it. You are JSON-encoding just to Javascript-encode -- but you have an extra set of quotation marks!
if $output is "<li>TEST</li>"
, then the file you are creating is
jsonpCallback({"html" : ""<li>TEST</li>""});
Uh, I think. Like I said, use cURL or Firebug to check the actual output.