Admin Posts Table Column Fitlering is not working for Custom Post Type

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');