I guess the <div class="single-post-thumb" >
is the one with the border etc.
Change your code to this:
if ( has_post_thumbnail( ) ) {
echo '<div class="single-post-thumb" >';
tie_thumb( '', $width, $height );
if ( get_post( get_post_thumbnail_id( ) )->post_excerpt ) {
echo '<div class="post_thumbnail-caption">' . get_post( get_post_thumbnail_id( ) )->post_excerpt . '</div>';
This will cause the <div class="single-post-thumb" >
to only show up when the post has a post thumbnail.
I don’t know what tie_thumb( )
does but seeing the code I expect it to show the thumbnail.