Medical database design and queries optimization
The Symptom and Disease tables are well-conceived.
Their purpose is clear, and they are about specific thing each.

The Combination table on the other hand stinks.
Combination of what?
It seems your goal with this table is to represent:


One record per case, maybe?
Age, gender, body part, weight, disease, main symptom of the case
Additional symptoms


Instead of putting the addition symptoms as a concatenated list of values,
it would be better to create another table with:


foreign key on case id, and symptom id
unique constraint on case id + symptom id


Also,
the prefixing of column names with s_ for symptom and d_ for disease is not great. It would be better to drop these prefixes.
You can use table aliases s and d instead, for example:

SELECT DISTINCT s.id, s.name, s.common FROM symptom s, combination c 
WHERE c.age = '$age' AND c.gender = '$gender' AND c.bp_id = '$bodypart' AND c.s_id = s.id