Displaying BLOB PDF File

That looks like it is a template file. If so, the function add_header_info is hooked into send_headers long after send_headers had fired. You will need to move that code so that it executes earlier. It should work from a mu-plugin file, a plugin file or from your theme’s functions.php.

However, $FileType and those other variables are going to be out of scope. (They are out of scope in your code already.) It looks to me like you can fix that by moving all of the code inside the callback.

function add_header_info() {
  global $wpdb, $FileContent;

  $mydataset = $wpdb->get_row("SELECT * FROM wp_attachments WHERE ID = 1119");

  $recordID = $mydataset->ID;
  $FileType = $mydataset->FileType;
  $FileSize = $mydataset->FileSize;
  $FileName = $mydataset->FileName;
  $FileContent = $mydataset->FileContent;

  header("Content-Type: ". $FileType);
  header("Content-Length: ". $FileSize);
  header("Content-Disposition: attachment; filename=". $FileName);
}
add_action( 'send_headers', 'add_header_info' );

Use the following in your template to echo the file contents:

global $FileContent;
echo $FileContent;

// or 

// echo $GLOBAL[$FileContent];

But that will run on every page which would be bad, so you will need to add a swithc inside your callback.

function add_header_info() {
  if (!is_page('page-slug')) return;
  global $wpdb, $FileContent;
  // ...