fai delle prove per vedere che il flusso di dati che vuoi inviare con content-type di un certo tipo esistano.
Prova un is_empty($output) per vedere se il tuo output esiste o no (in tal caso hai un problema da qualche parte).
Al max fai una prova del genere.

<?php
$output="foooooooooooooooooooo";
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
echo $output;
?>

A questo punto il file deve essere un pdf ovviamente non funzionante, ma di byte tanti quanto il tuo foooo..