The has_tag function doesn’t do what you expect here. It actually means ‘post has tag’ checks if a post (or current post) has a particular tag. Something like has_tag( 'self-important-tag' )
. See the codex
If you leave out the conditional and the post has no tags, get_the_termlist will echo nothing because it checks if the post has terms internally:
<!-- Start of tags -->
<?php echo get_the_term_list( $post->ID, 'download_tag', 'Tags ', ', ', '' ); ?>
<!-- End of tags -->