Not sure why you have the second join to the history table. If each upload has a unique user and a unique history row, then user_id in the history table is useless information for this query. The second history join is giving you the redundant rows. Try and avoid using DISTINCT and its variations. It requires the server to do more work and therefore slow down your query.
SELECT
US.name,
US.address,
UP.file_path,
UP.picture_path,
HS.location
FROM
[user] US
LEFT JOIN
uploads UP
ON (US.user_id = UP.user_id)
LEFT JOIN
history HS
ON (US.upload_id = HS.upload_id)
WHERE
US.user_id = 5
ORDER BY
US.user_id