This should work:
.//button[.='OK' and not(ancestor::div[contains(@style,'display:none')])
and not(ancestor::div[contains(@style,'display: none')])]
EDIT:
The simpler and more efficient expression below:
//div[not(contains(@style,'display:none'))]//button[.='OK']
does not work properly because every button has at least one div that’s visible in its ancestors.