Try this
<?php $related = new WP_Query( 'tag=' . get_the_title() . '' );
if( $related->have_posts() ):
<h1>Related Articles</h1>
while ( $related->have_posts() ) : the_post(); ?>
<li><a href="https://wordpress.stackexchange.com/questions/48774/<?php the_permalink() ?>"><?php the_title(); ?></a> </li>
<?php endwhile;
else:
//there are no related articled
endif;
wp_reset_postdata();?>
EDIT
You should not use query_posts
for a secondary loop. The query_posts
alters the ‘main loop’ (in this case the main loop initial contains just your page). See the Codex here:
query_posts() is meant for altering the main loop. Once you use query_posts(), your post-related global variables and template tags will be altered. Conditional tags that are called after you call query_posts() will also be altered – this may or may not be the intended result.
To create secondary listings (for example, a list of related posts at the bottom of the page, or a list of links in a sidebar widget), try making a new instance of WP_Query or use get_posts().