So there are some oddities with Selenium clicks not triggering all DOM events attached to an object. It normally occurs due to, let's say, un-optimally written front-end code.
But not making any judgements here, as Selenium can just encounter problems that it really shouldn't have.
So here is one suggestion. Go into the browser dev tools > console, and try the following example. I will write this in JQuery, but if you do not have JQuery, feel free to inject it on the page, or change the code to regular document.getElement code.
$("#FirstComboBoxOption").click();
Does that trigger all the expected events? Does the second Combobox populate correctly?
There is no dishonor using that to click an element. I use Selenium's click whenever possible, but Selenium's click is not literally identical to a real human click anyway, as the mouse/user32.dll is not used to perform a click. So using javascript, while not ideal, is not wrong if it is the only way to trigger all the events on the object.
The best situation is that the event logic is hooked up in a way that this is not necessary, but I am going to assume that is not an option here. Instead, I would do this (note that I use C# for Selenium, so this is a general guess on the syntax. Consider it kinda pseudo code)
browser.execute_script("$('#FirstComboBoxOption').click()");
Next, I am going to assume this doesn't work for you, so here is the next option.
First, find all events attached to the first combo box, that ostensibly are triggering the population of the second combo box. You can do this, using JQuery, like this:
var elem = $('#FirstComboBoxOption')[0];
$._data(elem, "events");
Do a little playing around to make sure you know what events are going to be triggered by a real click. Then, do the following:
$('#FirstComboBoxOption').trigger('SomeExpectedEvent');
Do one line for each of the events, if there is more than one event. I've only ever had to do the event example above once. It is a last resort. There really isn't anything wrong with it in the grand scheme of things, but whenever possible, it is obviously a superior option to trigger things using means as close to a real user's interactions as possible.