I strongly suspect the inability to do negation comes from the fact that the training dataset contains virtually no images tagged with negated descriptors. It wouldn't surprise me to see it correctly handle negations that might be more common in image tags (e.g. "a car not running" might be a sufficiently common phrase for "broken down car").