you could either filter this function or the thematic_postmeta_authorlink function. both would probably get you to the same place. and you're spot on w/ your conditionals (as long as it matches the one in your wordpress)
the problem is that you are not returning the value of $postmeta for anything that ISN'T in your conditional, hence overwriting it all w/ a blank, instead of maintaining the defaults.
this is how to properly set up a filter that preserves some of the original values
function childtheme_remove_author($postmeta) {
if (in_category('Testimonials')) {
$postmeta = ''; /* bye vcard, b/c no output specified - blank return */
}
return $postmeta;
}
add_filter('thematic_postheader_postmeta', 'childtheme_remove_author');