Booleans are cool but not always the only way. Especially since Booleans don't like it when verts or edges sit exactly on top of each other. Then you need to marginally move or rotate them. Here's another way.
Create a mesh cone. Make sure the vertices are a multiple of six for a six sided pencil. Adjust the length of the tip with 'Depth'. 'Fill Type':Nothing

In Edit Mode select the entire base and use Checker Deselect. In my case, Nth Selection = 6. For a 60 vertex cone, this would be 60 / 6 = 10.

Duplicate the 6 verts with SHIFTD , use ESC to stop translation and keep them in place, make an ngon out of them with F and throw them out with P 'selection'.

Select everything and use Knife Project with Space K N I .

Invert the selection with CTRLI and delete the verts.

E xtrude the bottom verts down.

Scale them flat with SZ0RETURN. Fill with F.

Finishing touches: Use the knife tool to make a straight cut in order to make the tip, select all and recalc the normals with CTRLN.
Assign 3 materials to the corresponding faces.

Find a good home for the stray hexagon.