I don't think I've ever used a blob data type while designing database. Like laserlight says, it makes sense to use BLOB for serialized data objects if you plan to store them in your database because it would prevent the db from worrying about things like character set collations -- things that apply to a text field. However, the file system is probably more effective for dealing with images/video/audio files or whatever.
Serializing or unserializing data is not a "reason" to use a blob field in your db. On the contrary, really. The need to take some data file or object and serialize it before you can get a PHP string that can be used in your INSERT/UPDATE query is extra work you must do to get binary data into a blob field. If anything, this extra serialization step is a reason not to use BLOBs to store them. Why bother if you can just use the file system to store them? As laserlight says, the 'prevailing wisdom' says that it's easier to store binary files using the file system and you just store the file system location of the binary file in your database.
I also find that most tools that help you work with a database (like phpMyAdmin) tend to be a little tricky when dealing with BLOB fields. While these tools will always just display the contents of some text field, they usually don't display the contents of BLOB fields without extra fiddling around. Instead of the blob contents, you typically see something like [BLOB - 34Kb].