Can anyone tell me what should be the condition, so special price
product should not get discount in shopping cart ?
Not easily done, out-the-box. The main issue would be date ranges, from when/to special prices are valid. You'd need to constantly update the rule(s) with new date range values, or constantly update exclusion categories with invalid products, as dates change.
However, there IS a solution, but requires 3rd party (non free) module.
I have run into this issue plenty, and I use my own created Dynamic Category Products extension to create automated exclusion categories. Since they update automatically, the exclusion lists are always up-to-date.
Here is a small how-to, using the 3rd party module
Create a new category, which is not visible in menus or even enabled.
In that category, create a dynamic category rule which will pull in all products with discount - be it special price, or catalog rules, or both.
The rule will automatically consider date ranges, so only products valid on the day the category is saved (or automatically rebuild, daily by cron, at 00:00) will appear.
This then solves the noted question you placed in comments:
Can you please suggest any condition so that I do not need to change
the from/to dates condition everytime I apply new special price
as dates are taken into consideration.
You can then use this category as an exclusion list in your rules.
You can even flip this, and build categories of 'allowed' products, and then build rules to only action on the given category products.
Using the Dynamic Category Products extension, you can create many 'staging' categories, which is purely used for other processes (like discount rules/exports/feeds)
I know this is not a coding solution, but I feel this still answrs the question, just in case those down-vote nazi's attack this answer.
OP asked for a solution, this is one!