you are just echoing the terms list. So, it will generate front end path. You have to change like this .
$post_type= get_post_type($post->ID );
$term_list = wp_get_post_terms($post->ID, 'ticketcat', array("fields" => "all"));
echo '<a href="'.admin_url( 'edit.php?post_type=" . $post_type ) . "&ticketcat=".$term_list[0]->slug."" > '. $term_list[0]->name.' </a>';
First get the post type and its term name and slug, than with help of custom echo, display the results. Here the complete function which you are seeking.
function my_custom_columns($column){
global $post;
$custom = get_post_custom();
switch ($column) {
case 'ticketcat' :
//echo get_the_term_list($post->ID, 'ticketcat', '', ', ','');
$post_type= get_post_type($post->ID );
$term_list = wp_get_post_terms($post->ID, 'ticketcat', array("fields" => "all"));
echo '<a href="'.admin_url( 'edit.php?post_type=" . $post_type ) . "&ticketcat=".$term_list[0]->slug."" > '. $term_list[0]->name.' </a>';
break;
case 'author_role' :
$get_author_role = get_userdata($post->post_author);
echo implode(', ', $get_author_role->roles);
break;
case 'ref' :
echo get_post_meta($post->ID, 'employer_ref', true);
break;
}
}
add_action('manage_posts_custom_column', 'my_custom_columns');