/* exclude sons */
$_categories = get_categories(array( 'child_of' => 16));
$exclude="";
foreach($_categories as $category){
$_exclude .= '-'.$category->term_id.',';
}
$_exclude = substr($_exclude,0,-1);
$_cats = $cat.','.$_exclude;
query_posts(array( 'cat' => $_cats ));
while ( have_posts() ) : the_post();
......
endwhile;