This is not a technically difficult problem to do as a manually run utility.
I'm assuming you want to specify a category and remove all products from that category (based on context of the company or all_stores mode)?
Essentially a app/addons/my_changes/controllers/backend/my_changes.php would contain:
use Tygh\Registry;
switch($mode) {
case 'rm_cat':
$category_id = $action ? $action : $_REQUEST['category_id'];
if( !is_numeric($category_id) )
$category_id = db_get_field("SELECT category_id FROM ?:category_descritpions WHERE category=%s AND lang_code=?s", $category_id, DESCR_SL);
$cnt = (integer)db_query("DELETE FROM ?:products_categories AS c INNER JOIN ?:products AS p ON p.product_id=c.product_id AND p.company_id=%d
WHERE category_id=%d", Registry::get('runtime.forced_company_id') ? Registry::get('runtime.forced_company_id') : Registry::get('runtime.company_id')
$category_id );
fn_set_notification('N', __("notice"), "Dropped '$cnt' products from category_id=$category_id", 'K');
fn_redirect(fn_url(""));
}
Usage: ?dispatch=my_changes.rm_cat.[category name or id]
Note: NOT TESTED