I think the main thing you need to consider when using the Boolean Modifier is using similar object resolutions. By that I mean, if you have a low poly object, you’ll be best off using another low poly object to use with the Boolean Modifier.
You should be careful of your placement with the second object, and you should be sure to not to have it oddly shaped. And make sure you have the object forming the hat extended far out enough to stick out from both sides of it.
You can ignore the (K)nife bit in the picture, but the length of the secondary objects vs the base object is what I mean.
I suggest you play around with cubes as your base object, a few shapes as your secondary object, and apply the Boolean Modifier with them in different positions on the cube. It is a little easier when the objects are more simple.
Hope that helps~