Get postlist for each category using query_posts?

Your use of queries is completely wrong, and as stated before, query_posts should never be used. The method you are using to retrieve you category ID’s are also a waste of resources. It would save much more if you knew the ID’s.

I would also look at get_categories to retrieve my category details and passing that to my custom query.

METHOD 1

If these categories are all the categories in your blog, you don’t need to know the category name or ID of the specific category to continue. You can retrieve that all with get_categories (check out all the available arguments and how they are used). In your foreach loop, you can then just pass the cat_ID to the cat parameter in your WP_Query

$categories = get_categories();
foreach ($categories as $category) {
    $query = new WP_Query( 'posts_per_page=1&cat=" . $category->cat_ID );

    if($query->have_posts()){
        while($query->have_posts()) {
        $query->the_post();
           //WHATEVER YOU NEED TO DISPLAY
        }
    }
    wp_reset_postdata();
}

METHOD 2

If you just need to get these few categories, and don”t have the ID’s, you can add the names in an array and use get_cat_ID to get the ID’s and then pass it in the same way as METHOD 1

$cat_names=array('Breaking News Stories', 'Call-out', 'Featured Story', 'Standard Stories');

foreach ( $cat_names as $cat_name ) {
    $cat_id = get_cat_ID( $cat_name );

    $query = new WP_Query( 'posts_per_page=-1&cat=" . $cat_id );

     // REST IS SAME AS IN METHOD 1

} // end of foreach loop