You need to do a separate JOIN per "link".
SELECT p.patient_id, p.patient_name, cl.complaint_name, cr.complaint_name
FROM table1 p
LEFT JOIN table2 cr
ON p.complaint_id_right = cr.complaint_id
LEFT JOIN table2 cl
ON p.complaint_id_left = cl.complaint_id
But do yourself a favour and use more sensible names! "table1" should be "Patients", "table2" should be "Complaints", "patient_id" should be "ID", "complaint_id" should be "ID" and so on. You don't need to include the table name in its ID column since you will always refer to it via the table name anyway.
I also suspect that your design is flawed - "left" and "right" columns should probably be a third table linking patients to complaints:
ID (IDENTITY or UNIQUEIDENTIFIER)
PatientID (Foreign key to Patients.ID)
ComplaintID (Foreign key to Complaints.ID)
This allows for a patient with one complaint, two complaints, or a dozen complaints.