Place beans in a bowl with water to cover. Soak 8 hours to overnight.
Drain the beans; place in a slow cooker with ham hock and salt. Cover with water. Cook on Low until beans are soft, about 8 hours.
Place bacon in a large pot. Cook over medium-high heat, turning occasionally, until starting to crisp, about 6 minutes. Add onion; cook and stir until soft, 5 to 7 minutes. Add garlic; cook and stir until beginning to brown, about 3 minutes.
Transfer beans to the bacon mixture using a slotted spoon. Mash with a potato masher, adding liquid from the slow cooker as needed. Add chili powder. Cook and stir until combined, 3 to 5 minutes.