The two conditions can be modelled with sticks. "Right of boy (M) is blue (B) T-shirt" and "left of girl (F) is red (R) T-shirt" are as below:
Now put in a boy:
|/| | |
If I am to extend this configuration, I may put at (1) a girl:
|X| | | (A)
or at (1) a second boy:
|/|/| | (B)
In (B), I cannot place a girl at (2) because it contradicts the second boy's T-shirt colour. Therefore I must place a third boy:
and I am forced to continue this pattern right around the circle, whereupon I have 20 boys, all wearing blue shirts.
In (A) I must place a boy at (2), since placing a girl there would again introduce a contradiction:
|X| |/| (C)
and if I now place a boy at (3) I am forced around the circle like (B):
| 20 seats |
|X| |/|/|...|/|/| |X|
But then (4) cannot be assigned boy or girl – another contradiction. Thus I must place a girl at (3) in (C):
Inductively, I have the same conditions as (A), but with two fewer seats. Hence I must continue the pattern, and I end up with 10 boys with red shirts and 10 girls with blue shirts alternating.
This, of course, assumes you have at least one boy; you could also have 20 girls with red shirts around the table. (This is just the 20-boys solution with "boy" replaced by "girl" and "blue" by "red".)
The number of boys can thus be only 0, 10 or 20.