Test if taxonomy on current page has at least one term with more than one page tagged with that term

You already have all the logic that you need. You just need to rearrange things so that nothing is output until you know that there are terms. So instead of echoing each link immediately, save them to a variable, and then only output the introductory paragraph and wrapping elements if that variable isn’t empty:

$terms = wp_get_object_terms($post->ID, 'topic');
$links = []; // We will add links to this.

foreach ($terms as $term) {
    if ( $term->count > 1 ) { // Only add links for terms with more than one post.
        $links[] = '<a href="' . esc_url( get_term_link( $term->term_id ) ) . '" rel="tag">' . esc_html( $term->name ) . '</a>'; // Add the link.
    }
}

if ( ! empty( $links ) ) {
    echo '<p>Explore other posts with these topics:</p><div class="topic-list"><p class="meta-tag-list">';
    echo implode( $links );
    echo '</p></div> <!--   topic-list -->'; 
}