On PC, the extra network adapter is configured as static 192.168.2.1.
A switch with DHCP enabled is connected to 192.168.2.1 and if I login using the console (RS232) I see that it has 169.254.x.x source: link-local, MAC: xx:xx:...
This means that these two cannot talk to each other - they're both part of different IP networks and there's no router in betweeen (which isn't possible because of the unroutable 169.254.x.y address).
If you've configured the switch as a DHCP client then your DHCP server isn't working. If you've configured the switch as a DHCP server then you will need to configure a static address.
How would I be able to open an SSH connection with the device knowing only it's MAC adress?
You can't. Either the PC needs to have an (additional) IP address within 169.254.0.0/16 or the switch needs to have an IP address within (assuming) 192.168.2.0/24. Alternatively, the switch could have another routable IP address and there's a router willing to forward in between.
Trying some ARP workaround (configure a static ARP entry on the PC like 192.168.2.2 for the switch's MAC) won't help because you'd get the switch to receive the frame and extract the IP packet, but since the destination IP isn't local it'd be ignored (a layer-3 switch would even try to forward the packet).
Do I need some DNS configuration?
DNS doesn't help here. DNS translates (human-readable) host names to IP addresses, but without the changes above there's no IP connectivity.
How to find the switch IP address based on MAC address?
There's no standard way. Historically, there's Reverse ARP but nobody's using that. You could try to listen to LLDP (Link-Layer Discovery Protocol) or CDP (Cisco Discovery Protocol) frames, advertising the switch and its IP address on its ports (when activated). There are also some other, proprietary protocols around but LLDP and CDP are more common.