I heard that many times before. It sounds strange and funny.
what can I do you for sounds like something you would ask a prostitute, if you know what I mean.
Is it better to say "What Can I do for you?"
This is more like a fun and playful way of asking "What can I do for you". It's a play on words. It does not really mean the same as What can I do for you though.
To answer your question, yes, it is grammatically correct.