WP_Query don’t working with fixed post_id and term_taxonomy

The behavior you described is how WordPress works by design, if you provide a 'p' parameter, then 'tax_query' is ignored, see inside this else statment in wp-includes/query.php:L1643, this is where 'tax_query' is processed and added to the SQL statement, and this only happens if this if (line 1634) is skipped.