You can achieve this thing by cron job:s
First,you need to get list of products which have discounts,then assign those products in special category
So.first to fetch product collection and filter those products which have final_price
is less that price
field.
$Collection=Mage::getResourceModel('catalog/product_collection')
->addFinalPrice()
->getSelect()
->where('price_index.final_price < price_index.price');
// Get product ids
$productIds=$Collection->getAllIds();
$categoryId = 'Your Category_Ids'; /
$category = Mage::getModel('catalog/category')->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID)->load($categoryId);
//get the current products
$products = $category->getProductsPosition();
foreach ($productIds as $id){
$products[$id] = 1;//you can put any other position number instead of 1.
}
//attach all the products to the category
$category->setPostedProducts($products);
//save the category.
$category->save();
Code is not tested.but concept is right