Para que o php reconheça todas as opções setadas em um select múltiplo, devemos por [] após o nome do select
<form method=POST...> <select name=estados[]' multiple> <option value='SP'>SP</option> <option value='RJ'>RJ</option> <option value='RS'>RS</option> </select> </form>
Para campos do tipo SET no MySQL, basta usar um implode pra popular os dados:
<?php $estados = implode(',', $_POST['estados']);