How to modify WP Query to target the first most recent post to adjust content

You do not need wp_reset_query() here use wp_reset_postdata() instead cause it’s a secondary query and you do not need to reset to the original main query.

Never use echo in shortcode, replace line :

echo "Nothing to show";

with :

$html_out = "Nothing to show";

To get what you want you may use :

global $wp_query;
$wp_query->current_post

It gives you the current position of the post in loop. Be careful, first post position is 0 not 1. So you may do the following :

if ( 0 === $wp_query->current_post ) { 
    /*some code*/ 
} else { 
    /* some code */ 
}