Category based on post id

WP_Query itself can’t do that logic internally but you can easily create the query dynamically.

$args = array(
  'meta_key' => 'name', 
  'orderby' => 'meta_value', 
  'order' => 'ASC', 
  'posts_per_page' => '-1'
);

if ($post->ID == 1) {
  $args['category_name'] = 'first';
} elseif ($post->ID == 2) {
  $args['category_name'] = 'second';
}

$custom_loop = new WP_Query($args);