You can use the function wp_list_pluck to get the ID of the posts retrieved from the query.
Just move the query before the h2 element and get the posts ID’s:
// Set a bool to know if at least one post has post thumbnail.
$has_thumb = false;
$first_query = new WP_Query('cat=1&author=" . $post->post_author . "&order=DESC&tag=Tattoo&posts_per_page=1000');
// Check if the query have posts.
if ( $first_query->have_posts() ) {
// Get the posts id's.
$ids = wp_list_pluck($first_query->posts, 'ID');
foreach( $ids as $id ) {
if ( has_post_thumbnail($id) ) {
$has_thumb = true;
break; // If at least we have a post thubmnail we don't need to continue.
}
}
}
Then you can check if there are thumbnails and show the h2 if so.
<?php if ( $has_thumb ) : ?>
<h2>Tattoo Work by <span style="text-transform: capitalize;"><?php the_author_meta('user_nicename'); ?></span>:</h2>
<?php endif; ?>