Assuming you are putting this in the Visible property, then to me the question isn't why it's not working, the question is why these are giving wrong outputs.
Is this a Multi or Single Select ComboBox as that matters.
What is cmbskills Parent (since its a Form you said) and what are the Items set to ?Do you have a DefaultSelectedItems Set as that will cause the issue (initially) and explain why when you check uncheck it works.
For instance for kicks if you took this code
CountRows(cmbSkills.SelectedItems)=0
And added just a random label in the form and put
Text(CountRow(cmbSkills.SelectedItems))
What does it say?
it will either say -1, 0 or > 0 if its > 0 then DefaultSelectedItems is messing with you. Or you are honestly its a gremlin
What you need to do is prove that your expressions are producing what you expect.
Then resolving why it doesn't make it visible/invisible is easier.
You can even try putting a Reset for the Label in the Onvisible, and well as for the Combobox which should force it to essentially do your click/unclick