How to check if custom field exists in this widget query

I can’t test it now, but the following should work…

    query_posts('post_type=sponsors&meta_key=_vof_sponsor_level&meta_value=Gold');
    if (have_posts()) : 
        echo "<div class="imageshadow sponsorwidgetslides">";
        while (have_posts()) : the_post();
           if ( get_post_meta($post->ID, 'url', true) ) { ?>
             <a href="https://wordpress.stackexchange.com/questions/39982/<?php echo get_post_meta($post->ID,"url',true); ?>"><?php the_post_thumbnail('sponsorwidget');?></a>

          <?php } else {
              the_post_thumbnail('sponsorwidget');
            }
        endwhile;
        echo "</div><!--/.imageshadow-->";
        echo "<a class="widgetlink" href="";
        bloginfo("url');
       echo "/sponsors'>View all Sponsors &raquo;</a>";
   endif; 
wp_reset_query();

I’ve not come across any problems with $post->ID, but from what Shane has just commented, you could change that to get_the_ID()