There’s the core function add_*/get_query_arg()
that you can use to append stuff to the query and retrieve it.
So simply add a link somewhere, that points to your custom post types single.php template
single-{$custom_post_type}.php
Then append the query arg which would be ?wpse_meta_key=wpse_some_val
and then do a switch on top of your template:
if ( 'wpse_some_val' === get_query_arg( 'wpse_meta_key' ) )
{
get_template_part( 'special_query_template' );
}
else
{
// do default stuff
}