In /includes/modules/new_products.php are 2 select statements:
PHP Code:
if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {
  
$new_products_query "select p.products_id, p.products_image, p.products_tax_class_id, p.products_price, p.products_date_added
                           from " 
TABLE_PRODUCTS " p
                           where p.products_status = 1 " 
$display_limit;
} else {
  
$new_products_query "select distinct p.products_id, p.products_image, p.products_tax_class_id, p.products_date_added,
                                           p.products_price
                           from " 
TABLE_PRODUCTS " p
                           left join " 
TABLE_SPECIALS " s
                           on p.products_id = s.products_id, " 
TABLE_PRODUCTS_TO_CATEGORIES " p2c, " .
  
TABLE_CATEGORIES " c
                           where p.products_id = p2c.products_id
                           and p2c.categories_id = c.categories_id
                           and c.parent_id = '" 
. (int)$new_products_category_id "'
                           and p.products_status = 1 " 
$display_limit;

You need to add another condition to not include the master_categories_id when it is 20 ...

In this case something like:

and p.master_categories_id != 20

to those two statements so that those products with the master_categories_id of 20 are blocked ...

Another way of doing it is to utilize another table, for the products_to_categories but the statement would be more complicated ...