Thanks for pointing me right direction. Return format is set to both because the data is used in another query.
I rewrote to loop through the array, data is now showing.
<td>
<?php foreach ($colors as $color): ?>
<?php if($color['value'] == 'red') { ?>
<span>✔</span> // html checkmark
<?php } ?>
<?php endforeach; ?>
</td>