Query Posts Exclude Entire Category

I recommend you use the pre_get_posts filter or ditch query_posts and use WP Query.

That way you can easily use category__not_in (array) parameter and not mess any other loops up.

function exclude_category($query) {

// this requires term id instead of term name so change "20" to the "sport" id
// this assumes "sports" is in a category and not a custom taxonomy
$child_cats = (array) get_term_children('20', 'category');

//only effect main home page query 
if ( $query->is_home() && $query->is_main_query() ) {
$query->set('category__not_in',array_merge(array('20'), $child_cats));
return $query;
}
}

add_filter('pre_get_posts', 'exclude_category');

ps. I did not test this but in theory it should work.