Aren't you aware that you can't really "filter out" the bad words? They'll still be seen by other people BUT yourself, meaning the replaced text is viewable to you only.

To fully censor the bad words on people's ends is to have the chat server program the censorship to begin with.

Having said that, the proper text event is this:
Code:
on ^$*:text:/\[\.{3}\]/iS:#:{
The ^ tells mIRC this is a custom text event. (the halt or haltdef should follow to halt the default) The /S modifier is to strip color control codes if used. This ensures the integrity of the match as colors can get in the way of making it unrecognizable. The .{3} is equivalent to three dots shown in your code.

Since you're already using regex text event, you should escape them using the backward slash so the regex engine can interpret them correctly. In regex, [ ] and ... (dots) have special meanings on their own.