It is dependent on the engine. Each engine implements its own cache (unless you count the query cache, which is not really useful in most cases).
Engines which use compression and have their own block caching system, for example InnoDB-plugin or Falcon, will probably do this automatically. That's because they cache in the format that the blocks are stored on disc, which means compressed.
The HEAP (in-memory) engine does not do compression (in fact, the standard HEAP engine is very inefficient, it doesn't support variable-length rows)
Engines which use the OS's cache will cache in whatever form they keep the data on the disc, for example, the Archive engine (which uses compression on-disc) will therefore keep compressed blocks in the OS's cache.