Либо использовать
CGContextDrawPath(context, kCGPathFillStroke);
как предложено sch, или снова нарисуйте шестиугольник перед вызовом FillPath. StrokePath и FillPath удаляют путь, который вы добавили в контекст, поэтому следующий вызов будет молча завершаться ошибкой без пути.
CGPathRef path = /* drawing hexagon here */;
CGContextAddPath(context, path);
CGContextStrokePath(context);
CGContextAddPath(context, path);
CGContextFillPath(context);
Примечание: два сегмента кода не эквивалентны и дают разный результат.