The idea of using a constant current source and shorting the LEDs is not a bad one, but this implementation will not work. A boost converter can't regulate its output, once the output voltage drops below a diode drop of its input voltage. Look at L1 and D5. The inductor can be treated like a piece of wire at DC, which leaves the output connected to the input voltage, via a diode. When the output voltage is greater, than the input, the diode is reverse biased, but when the output, is less than the input voltage, the diode becomes forward biased, causing the output voltage to rise, whatever the controller does. If a single LED were connected to the output, it would smoke, since its forward voltage, is much less than 5V.
The P-MOSFETs will also never turn fully on, unless a negative gate voltage is applied and Q5's symbol is wrong and is connected incorrectly. The body diode's anode connects to the drain and cathode to the source, so it will conduct, causing the LED to be permanently short circuited.
As mentioned above: use two separate buck converters for each LED. A single constant current converter could be used, but it would need to be able to output both lower, than input, as well as higher, than input voltage, which rules out both buck and boost topologies. One could use: SEPIC, a transformer (flyback, or forward converter), buck-boost etc. but it's unlikely to be cheaper than two buck converters.