To make this work for the What's New Sidebox in the Right column ...

Using your templates and overrides for these files ...

Put back the original code for:
/includes/templates/templates_default/sideboxes/tpl_whats_new.php

Customize the code in:
/includes/modules/new_products.php
Code:
// bof: block New Products in sidebox from centerbox
global $new_product_skip;
// eof: block New Products in sidebox from centerbox
  while (!$new_products->EOF) {
Code:
// bof: block New Products in sidebox from centerbox
    $new_product_skip .= $new_products->fields['products_id'];
    $new_products->MoveNextRandom();
    if (!$new_products->EOF) {
      $new_product_skip .= ', ';
    }
// eof: block New Products in sidebox from centerbox
Customize the code in:
/includes/modules/sideboxes/whats_new.php

Code:
// $display_limit = zen_get_products_new_timelimit();
  $display_limit = zen_get_new_date_range();

// bof: block New Products in sidebox from centerbox
global $new_product_skip;
if ($new_product_skip != '') {
  $new_products_skip_sql = ' and p.products_id not in (' . $new_product_skip . ')';
} else {
  $new_products_skip_sql = '';
}

  $random_whats_new_sidebox_product_query = "select p.products_id, p.products_image, p.products_tax_class_id, p.products_price, pd.products_name,
                                              p.master_categories_id
                           from (" . TABLE_PRODUCTS . " p
                           left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on p.products_id = pd.products_id )
                           where p.products_id = pd.products_id
                           and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
                           and p.products_status = 1 " . $display_limit .
$new_products_skip_sql;
// eof: block New Products in sidebox from centerbox