I completely agree with you, and I can't imagine how I'd feel if I were in a similar situation... but my mother constantly reminds me that we can't control what people do with gifts once given. As classless as I think this person is, it would probably be even worse for you to ask for your gift back.
It seems your coworker doesn't understand what knitting means to you and she may have seen a hand-knit gift as a cheap way out of a Secret Santa if she didn't know anything about yarn or time investments. When I first started knitting, my boyfriend thought that knitting a scarf for a friend was a lousy gift idea because, in his words "Come on, it's just a scarf." (He knows better now).
Your coworker is probably responding to it as "just a hat," the likes of which you could get at H&M or a street corner for five bucks.
The most graceful response would probably be to say nothing and not respond. If she says anything tacky again, perhaps privately tell her how much knitting means to you and how you really put a lot of thought and consideration into that gift, that it's insulting for her to talk about it as if you gave her macaroni glued to construction paper or your hand print in plaster. Whatever she does with that information is her choice. It doesn't make her a bad person if she doesn't "get" knitting, but if you give her the full story and she still chooses to be rude, then you may know better what kind of friend she is.