SET is a bitmap internally (with a maximum of 64 different values) that is mapped to string on input/output. For example:
create table test
(
id int auto_increment,
// ...
direction set ('north','west','east','south'),
// ...
);
Now you can say things like:
insert into test (direction) values ('north');
select direction from test where id = some_value;