Get count of intersected rows on the same table
To obtain those users use

SELECT user_id
FROM `table`
WHERE skill_id IN(1,3)
GROUP BY user_id
HAVING 2 = COUNT(*) 


If there is no unique constraint for (user_id, skill_id), use COUNT (DISTINCT skill_id) instead of COUNT(*).

To obtain only the count of those users you may use the above query as a subquery:

SELECT COUNT(*)
FROM ( SELECT user_id
       FROM `table`
       WHERE skill_id IN(1,3)
       GROUP BY user_id
       HAVING 2 = COUNT(*) 
     ) AS `table`