Can’t get drafts with WP_Query using post_status parameter

Try passing it as an array.

For example

$args = array(
    'p' => 1234, 
    'post_type' => 'any',
    'post_status' => array('draft')
);

Or for all types

$args = array(
    'p' => 1234, 
    'post_type' => 'any',
    'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash')
);