show loop id post , only first id can read

You are getting the option “blog-featured-post”, which apparently returns two posts. Then, for each of these posts, you are making a query.

Only the second one is actually used, since your if ( $q->have_posts() ) is outside of the loop. This query only has one post, since you use the post ID with the post__in option.

So this is expected behavior.