This is an interesting variation on the theme. At first and second glances you would assume the true branch is taken. Not so!
bool? flag = null;
if (!flag ?? true)
{
// false branch
}
else
{
// true branch
}
The way to get what you want is to do this:
if (!(flag ?? true))
{
// false branch
}
else
{
// true branch
}