Without any detail behind how you are getting a value for the KPI its difficult to diagnose, but my first thought is have you accounted for the difference between 0 and NULL? If you are using a mathematical function to validate against, it could very well be that there is no data to validate as opposed to a value of 0?
on the SQL query level in Scenario 1 the values for actual and tagert are both NULL. I can change the query however I want, I just need to be able to display black background when there's no data instead of green. I also tried other combinations for actual/target e.g. NULL/zero, zero/zero etc. and I've never got black background.
What are you suggesting to change here in order to achieve black background for "None" value?
Have you tested it with a 0 value instead of Null?
I'd also question how you have a value with no target. In the context why would you report on a sales item that has not value or target? perhaps if you explained the context of the report it would help with a solution.
Yes, I've tested all the combinations of Actual/Target values - see below zero/zero combination.
From the business perspective it is important to see black color (instead of green/red which suggest that we're dong good/bad) so that the users see that the data for a certain month is missing and they need to provide it.
Do you have any ideas if this is a bug or I'm doing somehting wrong?
You're not explaining the source of the KPI. Are you using a measure or getting the KPI as a field from the database? The nature of the KPI will determine the value/data type it is producing and thus how it is being handled by Power BI.