The first approach is better and seems that it has no drawback.
But if you want to maintain the dependency in that order only, then a better approach could be to combine the cheque and sell table if they both have the same columns and add another boolean column IsCheque which will be set true or false depending on the payment mode.
EDIT:
Other approach could be to take a boolean column IsPaymenyCheque and another column as PayModeID. Based on the IsPaymenyCheque, refer to either of the table with PayModeID.
This would complex your queries as you will have to check for the Boolean value each time. Also you will have to remove the foreign key constraint.