How to get the list of posts with empty content

your code :

$content = get_the_content();
        if(empty($content)) {...}

you can replace your code with this :

if ($posts->post_content == ''){...}

this is not tested just try it i hope useful it.

EDIT

try this code.

$args = array(
    'post_type' => 'post',
    'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash'),
    'posts_per_page' => -1,
    'orderby' => 'ID',
    'order' => 'desc');

$blank_posts = array();
$content_post =array();

$posts = new WP_Query( $args );

if ( $posts->have_posts() ) : 
    while ( $posts->have_posts() ) : $posts->the_post();
    global $post;
       $content = get_the_content();
        if(empty($content)) { 
            array_push( $blank_posts, $post);
        }else{
            array_push( $content_post, $post);
        }
    endwhile;
endif;
/* print all blank content posts */
var_dump($blank_posts);
var_dump($content_post);

if(!empty($blank_posts)){
    foreach ($blank_posts as $pst) {
        echo "ID= ". $pst->ID . ' : '. "Title= ". $pst->post_title .'<hr />';
    }
}