Get first category only and excluding one

Within the post loop you can do,

$category = get_the_category(); 

if($category[0]->cat_name == "featured") {

    //if first category in array is "featured", get next category in line

     $name = $category[1]->cat_name;
     $cat_id = get_cat_ID( $name );
     $link = get_category_link( $cat_id );
     echo '<a href="'. esc_url( $link ) .'"">'. $name .'</a>';

} else {

    //get the first category

     $name = $category[0]->cat_name;
     $cat_id = get_cat_ID( $name );
     $link = get_category_link( $cat_id );
     echo '<a href="'. esc_url( $link ) .'"">'. $name .'</a>';

}

If you are outside the loop you can pass a post ID to get_the_category($id);

Note: Its crude… you could simplify this logic.

Edit: Here is a link to an answer that provides a more refined approach using the array_pop which you could adapt to your situation:

Get the first post term