Conditionally remove comments and post meta in functions.php

Here are some ideas:

a) Instead of

is_category(4,5,6)

which checks if a category archive page is being displayed (see here), you can try

in_category(4,5,6)

or

in_category( array(4,5,6) )

that checks if the current post is assigned to any of the specified categories (see here).

b) You could also try

function woo_post_meta() {
    if ( in_category(4,5,6) ) {
        return "";
    }else{
     // the original woo_post_meta()  code here.
    }
}

c) If the original woo_post_meta() contains an output filter, than we could add a custom filter with the above category check.

d) If you write your own child theme, you could replace the template tag:

   woo_post_meta();

with

  if ( !in_category(4,5,6) ) {
       woo_post_meta();
  }