I believe your if statement involving $tags is causing "Related Posts" to show.
"if ($tags)" is returning true because even if a post doesn't have tags wp_get_posts_tags() still returns an array, not null or 0.
Delete
echo 'Related Posts';
from it's current location and replace it as shown here:
if( $my_query->have_posts() ) {
echo 'Related Posts'; // Insert it here.
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
<?php
endwhile;
}
}
wp_reset_query();
?>