taxonomy query to output slugs instead IDs

Nothing stands out as ‘wrong’ – though you do have a few errors:

  • The third tax_query conditional is missing a closing bracket
  • The third tax_query should be querying precio not $ubicacion.
  • Cast the ID variables as integers

I’d suggest putting WordPress into debug mode to highlight any syntax errors. Try doing it for only one taxonomy first, and then add the others in. If using WP3.3+ I would also suggest the following set up:

add_action('pre_get_posts', 'my_customsearch'); 
function my_customsearch($query) {   

    if(! $query->is_main_query() || ! $query->is_search )
       return;

    $tax_query = array();
    $operacion = (int) get_query_var('product_category');

    // first dropdown
    if (! empty($operacion) && $operacion > 0) {
       $tax_query[] = array(
         'taxonomy' => 'product_category',
         'field'    => 'id',
         'terms'    => $operacion
       );
    }

   if ( sizeof($tax_query) > 0 ) {
      $tax_query['relation'] = 'AND';
      $query->set( 'tax_query', $tax_query );
   }

}

Keep in mind this will replace any tax query that is part of the main search.