WordPress custom post type queries

This all depends on what you’re actually saving in your post meta. If you’re actually saving the ID you could create a secondary query on your single-post_type.php page.

<?php if( have_posts() ) : ?>
    <?php while( have_posts() ) :
            the_post();
            $cpt2_meta = get_post_meta( $post->ID, '_meta_name', true ); // Get out Post Type 2 Meta
    ?>
        <?php the_content(); ?>
    <?php endwhile; ?>
<?php endif; ?>

<?php if( ! empty( $cpt2_meta ) ) :
    $cpt2_posts = new WP_Query( array( 
        'post_type' => 'cpt2_slug',
        'posts_per_page' => -1,
    ) );

    if( $cpt2_posts->have_posts() ) : 
?>
    <?php while( $cpt2_posts->have_posts() ) : $cpt2_posts->the_post(); ?>
        <h1><?php the_title(); ?></h1>
    <?php endwhile;?>
  <?php endif; ?>

<?php endif; ?>

First we get the Post Meta ( category ) then we run a secondary query on that “category”. Again, this may change depending on what you’re saving as your post meta. For more information you can read into WP_Query.